package 草稿包;

import java.util.Arrays;
import java.util.Scanner;

public class test10 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        int n = sc.nextInt(); // 树木的数量
        int m = sc.nextInt(); // 需要的木材总长度
        int[] heights = new int[1000001]; // 树木高度数组
        int max_heigh=-1;
        for(int i=0;i<n;i++){
            heights[i]=sc.nextInt();
            if(heights[i]>max_heigh)max_heigh=heights[i];
        }

        int maxHeight = findMaxHeight(n, m, heights,max_heigh);
        System.out.println(maxHeight);
    }

    public static int findMaxHeight(int n, int m, int[] heights,int max_heights) {
//        // 对树木高度进行排序
//        Arrays.sort(heights);

        int l = 0;
        int r = max_heights; // 最大的可能高度是最高的树的高度

        for(int j=r;j>=l;j--){
            int totalCut=0;

            for (int i = 0; i < n; i++) {

                if (heights[i] > j) {
                    totalCut += heights[i]-j; // 只计算被砍掉的部分
                }
            }
            if(totalCut>=m){
                return j;
            }
        }
        return -1;
    }
}
